A Rigorous Correctness Proof for Pastry
نویسندگان
چکیده
Peer-to-peer protocols for maintaining distributed hash tables, such as Pastry or Chord, have become popular for a class of Internet applications. While such protocols promise certain properties concerning correctness and performance, verification attempts using formal methods invariably discover border cases that violate some of those guarantees. Tianxiang Lu reported correctness problems in published versions of Pastry and also developed a model, which he called LuPastry, for which he provided a partial proof of correct delivery assuming no node departures, mechanized in the TLA Proof System. Lu’s proof is based on certain assumptions that were left unproven. We found counter-examples to several of these assumptions. In this paper, we present a revised model and rigorous proof of correct delivery, which we call LuPastry. Aside from being the first complete proof, LuPastry also improves upon Lu’s work by reformulating parts of the specification in such a way that the reasoning complexity is confined to a small part of the proof.
منابع مشابه
A machine-checked proof of correctness of Pastry. (Une preuve certifiée par la machine de la correction du protocole Pastry)
A distributed hash table (DHT) is a peer-to-peer network that o↵ers the function of a classic hash table, but where di↵erent key-value pairs are stored at di↵erent nodes on the network. Like a classic hash table, the main function provided by a DHT is key lookup, which retrieves the value stored at a given key. Examples of DHT protocols include Chord, Pastry, Kademlia and Tapestry. Such DHT pro...
متن کاملTowards Verification of the Pastry Protocol Using TLA +
Pastry is an algorithm that provides a scalable distributed hash table over an underlying P2P network. Several implementations of Pastry are available and have been applied in practice, but no attempt has so far been made to formally describe the algorithm or to verify its properties. Since Pastry combines rather complex data structures, asynchronous communication, concurrency, resilience to ch...
متن کاملFormal Verification Of Pastry Using TLA
Pastry [1, 2] is an algorithm that provides a scalable distributed hash table over an underlying P2P network. Several implementations of Pastry are available, but to the best of our knowledge the correctness of the algorithm has not been verified formally. Since Pastry combines rather complex data structures, asynchronous communication, concurrency, resilience to churn and fault tolerance, we b...
متن کاملModel Checking the Pastry Routing Protocol
Pastry is an algorithm for implementing a scalable distributed hash table over an underlying P2P network, an active area of research in distributed systems. Several implementations of Pastry are available and have been applied in practice, but no attempt has so far been made to formally describe the algorithm or to verify its properties. Since Pastry combines rather complex data structures, asy...
متن کاملTowards Rigorous Compiler Implementation Verification
This paper sketches our approach to rigorously prove the correctness of a compiler executable down to its binary machine code implementation. We will emphasize the central r^ ole of partial program correctness and its preservation, which capture the intuitive correctness requirements for transformational programs and in particular for compilers on realistic machines. Vertical and horizontal com...
متن کامل